LlamaIndexのアップデートまとめ:0.6.28(2023/06/19) から 0.6.32(2023/06/24) まで【Object Indexの追加】
こんちには。
データアナリティクス事業本部 インテグレーション部 機械学習チームの中村です。
本記事は「0.6.28(2023/06/19)」から「0.6.32(2023/06/24)」までのLlamaIndexのアップデートまとめです。
ソースコードを見ながらアップデート点をピックアップしています。
個人的な注目は以下の変更かなと思います。
- 0.6.32
- ObjectIndexが追加
- ObjectIndexは、任意のPythonのObjectに対してIndex構造を使用する仕組み
- 例えばToolをObjectとして、このObjectに対してVectorStoreなどを使用することが可能で、例えばユーザのクエリとVectorStoreを使って、使用するToolを決めるなどが可能。
多くの変更点は、Function callingに関するものとなっており、OpenAI API側のアップデートの影響を感じます。
0.6.22からCHANGELOG.mdが記載されるようになっていますので、そちらもご参照ください。
それでは見ていきましょう。
各アップデート
2023-06-19 LlamaIndex 0.6.28
そこまで大きな変更はなく、Function callingを使ったexamplesが拡充されています。
- Function callingを使ったOpenAIAgentのサンプルノートブックが追加
- OpenAIAgent自体は、0.6.26で追加されたもの
- Function callingを使ったOpenAIPydanticProgramのexamplesが追加
- OpenAIPydanticProgram自体は、0.6.26で追加されたもの
2023-06-20 LlamaIndex 0.6.29
QueryPlanToolの追加が主な変更で、コンテキスト長に関する定数が追加されています。
- ToolsにQueryPlanToolが追加
- CohereとAI21向けのコンテキスト長の定数値を追加
- モデル名からコンテキスト長を引く
openai_modelname_to_contextsize
関数がutilsに追加
2023-06-22 LlamaIndex 0.6.30
RouterQueryEngineがFunction callingによって修正されたのがポイントかなと思います。
- RouterQueryEngineに関する修正
- BaseSelectorのサブクラスとして、PydanticSingleSelectorとPydanticMultiSelectorが追加
- PydanticSelectorはFunction callingを用いて実現
- RouterQueryEngineにservice_contextとsummarizer、select_multiが設定可能に
- GitHubノートブック
- Chat EngineであるCondenseQuestionChatEngineとSimpleChatEngineがstreaming responseに対応
- PandasIndexがDeprecatedとなり、代わりにPandasQueryEngineを使用するように
- VectorStoreに、PGVectorStoreが追加
2023-06-23 LlamaIndex 0.6.31
大きな変更は無いようです。
- EmptyIndexにas_query_engineメソッドが追加
2023-06-24 LlamaIndex 0.6.32
ObjectIndexという仕組みが最も大きいアップデートです。その他、このバージョンではTreeSummarizeなどのリファクタされています。
- ObjectIndexが追加
- ObjectIndexは、任意のPythonのObjectに対してIndex構造を使用する仕組み
- 例えばToolをObjectとして、このObjectに対してVectorStoreなどを使用することが可能で、例えばユーザのクエリとVectorStoreを使って、使用するToolを決めるなどが可能。
- ObjectIndex、ObjectRetrieverが追加
- Tool Mappingを構成する仕組みとして、SimpleObjectNodeMapping、SimpleToolNodeMapping、SimpleQueryToolNodeMapping、SQLTableNodeMappingが追加
- Tool Mappingの違いについては要調査
- BaseOpenAIAgentのサブクラスとして、FnRetrieverOpenAIAgentの追加
- ObjectIndexを活用したOpenAIAgent
- GitHubノートブック
- Query EngineにToolRetrieverRouterQueryEngineが追加
- ObjectIndexを活用したQueryEngine
- GitHubノートブック
- TreeSummarizeが、BaseResponseBuilderのサブクラスとしてリファクタ
- 元々はRefineクラスのサブクラスであった
- StructStore関連がリファクタされた
- SQLStructStoreIndex、SQLStructStoreQueryEngine、NLStructStoreQueryEngineがDeprecatedに
- BaseQueryEngineのサブクラスとして、BaseSQLTableQueryEngineが追加
- BaseSQLTableQueryEngineのサブクラスとして、SQLTableRetrieverQueryEngine、NLSQLTableQueryEngineが追加
まとめ
いかがでしたでしょうか。
本記事がLlamaIndexのアップデートが気になる方のご参考になれば幸いです。